Contemporary cloud-based data storage systems, such as Dell EMC® Elastic Cloud Storage (ECS™) service, store data in a way that ensures data protection while retaining storage efficiency. ECS is referred to as “elastic” storage because the data storage system is able to store arbitrary data sets having any amount of data of any size within the available physical storage capacity, without limitations enforced at the software level.
However, the ability to work with an arbitrary data set does not mean that data storage does not work differently with differently-sized data sets. In particular, small-sized objects have a high capacity overhead; for example, in ECS™, user data are stored in chunks, and basically have the same overhead as large objects stored in chunks, but with a relatively higher overhead-to-object-size ratio. Moreover, with small objects, it is highly impractical (or at least very difficult) to reclaim capacity at the chunk level or even at the chunk fragment level, without using copying garbage collection techniques, which in general are low performance techniques. Object grouping at the application side before storage is one possible solution; however such a solution, which would be up to the applications rather than the data storage system, has considerable penalties associated with it.